Typically, there is a requirement to merge asset information into a workspace data center model (DCM) for assets that already exist in the workspace. For example, a user may upload raw data to their workspace. The raw data can be parsed and a list of model assets generated, whereby each model asset represents a top level asset found in the raw data. During a correlation process, as each model asset is persisted, a check is made to see if the model asset already exists in the workspace. If the model asset does not exist, it is created. If the model asset already exists, the latest model asset XML is merged into the existing copy.
The initial implementation of a merge is generally a destructive merge, which adds sub-assets from incoming top level assets that do not already exist, merges the properties of those sub-assets that already exist, and removes sub-assets that are not in the incoming top level assets.
In order to perform a merge, a method of clearly identifying an asset and its sub-assets in order to compare assets with each other is required. In known approaches, the code to compare one asset with another is embedded in the source code making the comparison. As a result, code to compare two objects for likeness or similarities is scattered across applications, making the code difficult to maintain. In some cases, in known systems, the code to compare the same assets is duplicated and/or inconsistent.
Accordingly, a need exists for improved systems and methods for identification and comparison of assets when merging data.